﻿using System.Xml.Serialization;

namespace BingSpatialDataServiceExcelAddin.BSDSTools.Models
{
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode", IsNullable = false)]
    public partial class GeocodeFeed
    {
        [System.Xml.Serialization.XmlElementAttribute("GeocodeEntity")]
        public GeocodeFeedGeocodeEntity[] GeocodeEntity { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Version { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntity
    {
        [System.Xml.Serialization.XmlElementAttribute("ReverseGeocodeRequest")]
        public GeocodeFeedGeocodeEntityReverseGeocodeRequest ReverseGeocodeRequest { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("GeocodeRequest")]
        public GeocodeFeedGeocodeEntityGeocodeRequest GeocodeRequest { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("GeocodeResponse")]
        public GeocodeFeedGeocodeEntityGeocodeResponse[] GeocodeResponse { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("StatusCode")]
        public string StatusCode { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("FaultReason")]
        public string FaultReason { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("TraceId")]
        public string TraceId { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Id { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityReverseGeocodeRequest
    {
        [System.Xml.Serialization.XmlElementAttribute("Location")]
        public GeocodeFeedGeocodeEntityReverseGeocodeRequestLocation Location { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("ConfidenceFilter")]
        public GeocodeFeedGeocodeEntityReverseGeocodeRequestConfidenceFilter ConfidenceFilter { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Culture { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string IncludeEntityTypes { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IncludeNeighborhood { get; set; }

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IncludeNeighborhoodSpecified { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte MaxResults { get; set; }

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MaxResultsSpecified { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityReverseGeocodeRequestLocation
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Latitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Longitude { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityReverseGeocodeRequestConfidenceFilter
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string MinimumConfidence { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeRequest
    {
        [System.Xml.Serialization.XmlElementAttribute("Address")]
        public GeocodeFeedGeocodeEntityGeocodeRequestAddress Address { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("ConfidenceFilter")]
        public GeocodeFeedGeocodeEntityGeocodeRequestConfidenceFilter ConfidenceFilter { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Culture { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IncludeQueryParse { get; set; }

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IncludeQueryParseSpecified { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IncludeNeighborhood { get; set; }

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IncludeNeighborhoodSpecified { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte MaxResults { get; set; }

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MaxResultsSpecified { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Query { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeRequestAddress
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AddressLine { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AdminDistrict { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Locality { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PostalCode { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string CountryRegion { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeRequestConfidenceFilter
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string MinimumConfidence { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponse
    {
        [System.Xml.Serialization.XmlElementAttribute("Address")]
        public GeocodeFeedGeocodeEntityGeocodeResponseAddress Address { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("GeocodePoint")]
        public GeocodeFeedGeocodeEntityGeocodeResponseGeocodePoint[] GeocodePoint { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("QueryParseValue")]
        public GeocodeFeedGeocodeEntityGeocodeResponseQueryParseValue[] QueryParseValue { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("BoundingBox")]
        public GeocodeFeedGeocodeEntityGeocodeResponseBoundingBox BoundingBox { get; set; }

        [System.Xml.Serialization.XmlElementAttribute("Point")]
        public GeocodeFeedGeocodeEntityGeocodeResponsePoint Point { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Name { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string EntityType { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Confidence { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string MatchCodes { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponseAddress
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AddressLine { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AdminDistrict { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string CountryRegion { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AdminDistrict2 { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string FormattedAddress { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Locality { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PostalCode { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Landmark { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Neighborhood { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponseGeocodePoint
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string CalculationMethod { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Latitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Longitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Type { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string UsageTypes { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponseQueryParseValue
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Property { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Value { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponseBoundingBox
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal SouthLatitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal WestLongitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal NorthLatitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal EastLongitude { get; set; }
    }

    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.microsoft.com/search/local/2010/5/geocode")]
    public partial class GeocodeFeedGeocodeEntityGeocodeResponsePoint
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Latitude { get; set; }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal Longitude { get; set; }
    }
}